#include "font_manager.h"
#include <string.h>

static struct FontOpr *g_Fonts = NULL;
static struct FontOpr *g_Font_default = NULL;

// 注册单个FontOpr
void RegisterFont(FontOpr *ptFontOpr)
{
    ptFontOpr->ptNext = g_Fonts;
    g_Fonts = ptFontOpr;
}

// 注册所有FontOpr
int RegisterAllFonts(void)
{
    extern void RegisterFTtoFontList(void);
    RegisterFTtoFontList();

    return 0;   
}

// 选择默认FontOpr结构体并初始化
int ChooseDefaultFontOprAndInit(char *FontOprName, char *FontFileName)
{   
    struct FontOpr *tmp = g_Fonts;
    while (tmp)
    {
        if (strcmp(FontOprName, tmp->name) == 0)
        {
            g_Font_default = tmp;
            // printf("int ChooseDefaultDevice(char *name) successed!\n");
            g_Font_default->FontInit(FontFileName);
            return 0;
        }
        tmp = tmp->ptNext;
    }
    return -1;
}

// 对于默认FontOpr结构体g_Font_default调用SetFontSize函数设置字体大小
int SetFontSize(int iFontSize)
{
	return g_Font_default->SetFontSize(iFontSize);
}

// 传入编码值dwCode获取一个FontBitMap结构体
int GetFontBitMap(unsigned int dwCode, PFontBitMap ptFontBitMap)
{
	return g_Font_default->GetFontBitMap(dwCode, ptFontBitMap);
}